Repository navigation
fix(schemas): spell three experimental 3.3 values as their counterparts do - #8989
KonstantinMirin wants to merge 4 commits into
Conversation
…ts do Three tokens are spelled two ways for one concept, and in each the side that changes is experimental, added in 3.3 and only in the 3.3 betas, so it is renamed in place before the RC with no stable release touched. - execution-readiness-status: input_required becomes input-required, the task-status spelling, which follows A2A's task states. - creative-change-kind: click_through becomes clickthrough, the url_type value the change kind names. - delivery-projection-end-state: underdelivery becomes under_delivery, the offer-reason spelling. DR-0029 is amended to match. Updates the readiness and projection schema descriptions, index.json, the media-buy specification, list_products, get_media_buy_delivery, sync_creatives and get_adcp_capabilities docs, the experimental status page, the training agent's change classifier, and the tests. The additive-minor check compares against 3.2.x, which has none of the three enums, so no baseline entry is needed. The 3.3 release pages are left to adcontextprotocol#8883. Part of adcontextprotocol#8901
…elling The hosted 3.3-beta.5 preview validates responses against the beta.5 bundle, whose creative-change-kind enum has click_through. A caller pinned to it now gets click_through in live_updates.in_place, staged_update change_kinds and the CREATIVE_LIVE_UPDATE_UNSUPPORTED details; every other caller gets clickthrough.
The execution readiness bullets in whats-new-in-3-3 and the 3.2-to-3.3 migration guide, and the live creative updates paragraph in the migration guide, now give input-required and clickthrough.
Preview approval requiredThis pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit |
|
Ladon cannot review this PR until merge conflicts are resolved. |
…token-spellings # Conflicts: # docs/reference/experimental-status.mdx
There was a problem hiding this comment.
Ladon verdict: Escalate to human review
Escalate — gated schema paths require human/CODEOWNERS approval.
This PR modifies protocol source-of-truth files under static/schemas/source/** (delivery-projection.json, execution-requirement-readiness.json, product-execution-readiness.json, three enum files, and index.json), which are under a hard, deterministic approval gate (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so the gate is not satisfied and the PR cannot be auto-approved.
The reviewer found no Critical/High/Medium findings: this is a clean experimental enum rename across three 3.3 values (click_through→clickthrough, underdelivery→under_delivery, input_required→input-required), with verified schema↔docs coherence, a correct minor changeset for an experimental rename, DR-0029 amendment noted, and correct backward-compat handling in the server reference impl. No oneOf regressions, no dist/** edits.
The diff itself looks sound, but merge requires explicit human/CODEOWNERS sign-off on the gated schema files before approval.
Escalation reasons
- Gated paths touched without approval: static/schemas/source/core/delivery-projection.json, execution-requirement-readiness.json, product-execution-readiness.json, and enums/index.json —
review_decisionis REVIEW_REQUIRED; human/CODEOWNERS review required.
Why human review
- gated_paths is true and review_decision is REVIEW_REQUIRED (not APPROVED) — modifications to static/schemas/source/** (delivery-projection.json, execution-requirement-readiness.json, product-execution-readiness.json, three enum files, index.json) require human/CODEOWNERS approval before merge
- This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/delivery-projection.json (modified) matches
static/schemas/source/**; static/schemas/source/core/execution-requirement-readiness.json (modified) matchesstatic/schemas/source/**; static/schemas/source/core/product-execution-readiness.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/creative-change-kind.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/delivery-projection-end-state.json (modified) matchesstatic/schemas/source/**; static/schemas/source/enums/execution-readiness-status.json (modified) matchesstatic/schemas/source/**; static/schemas/source/index.json (modified) matchesstatic/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.
Part of #8901.
Three of the five tokens spelled two ways can take one spelling before the 3.3 RC. In each, the side that changes is experimental, added in 3.3 and only in the 3.3 betas, so no stable release is touched. This PR renames them in place, as offered in this comment. The other two (protocol names and
nonlinear) have two stable sides and wait for 4.0.enums/execution-readiness-status.json(media_buy.execution_readiness)input_requiredinput-requiredenums/task-status.json, which follows A2A's task statesenums/creative-change-kind.json(creative.live_updates)click_throughclickthroughenums/url-asset-type.json, theurl_typethe change kind namesenums/delivery-projection-end-state.json(media_buy.delivery_projection)underdeliveryunder_deliveryenums/offer-reason.jsonAll three enum files carry
x-status: experimentalandx-added-in: 3.3.0, and none exists on3.2.xor in any 3.2 or earlier bundle underdist/schemas/.What changes
enumDescriptionskeys), the readiness descriptions incore/execution-requirement-readiness.jsonandcore/product-execution-readiness.json, the end-state description incore/delivery-projection.json, and the threeindex.jsondescriptions.list_products, the delivery projection example and tables inget_media_buy_delivery, the change-kind table and the assignment note insync_creatives, andlive_updatesinget_adcp_capabilities. The experimental status page says on each row that the betas spelled the value the old way.under_delivery, with an amendment note that the record was written with the beta spelling.in_placekinds useclickthrough. The hosted3.3-beta.5preview validates responses against the beta.5 bundle, which has onlyclick_through. So a caller pinned to it still getsclick_throughinlive_updates.in_place,staged_update.change_kindsand theCREATIVE_LIVE_UPDATE_UNSUPPORTEDdetails, andserved-release-shape.test.tsgrades that. Execution readiness and delivery projections have no training-agent code.tests/execution-readiness.test.cjs,tests/creative-live-updates.test.cjs,tests/delivery-projection.test.cjsandserver/tests/unit/live-creative-updates.test.ts..changeset/experimental-token-spellings.md. The consumed changesets for the three features stay in.changeset/pre/as history.No storyboard uses any of the three values.
Renamed in place
These are experimental, so there's no deprecation and no alias.
lint-additive-minorskips experimental schemas and compares against 3.2.10, which has none of the three files, so it passes with no new baseline entry.The experimental contract asks for 6 weeks' notice before a breaking change. These values are in no stable release, only in the betas, so this is the same kind of beta-to-beta change as #8758 and #8767 (#8501).
3.3 release pages
Three lines on the 3.3 release pages gave the old spellings. This PR changes them:
docs/reference/whats-new-in-3-3.mdx, the execution readiness bullet:input-requireddocs/reference/migration/3-2-to-3-3.mdx, the execution readiness bullet:input-requireddocs/reference/migration/3-2-to-3-3.mdx, the live creative updates paragraph:clickthrough#8883 rewrites these pages for rc.0. Whichever lands second keeps the new spellings.
Not changed
Other uses of the same spellings name other things:
input_requiredin the MCP guide is MCP's own task state. The orchestrator-design example and the MCP task-store migration use it for task state too.underdeliveryas an ordinary word in descriptions and docs prose, such asbidding-policy.json.asset_role: 'click_through'andrequirements.url_typeinserver/src/shared/formats.tsare format slot labels, not change kinds.For adopters
A seller or buyer built from a 3.3 beta bundle switches to the new spellings in
readiness_statusand the product rollup,creative.live_updates.in_place[].change,staged_update.change_kinds[], theCREATIVE_LIVE_UPDATE_UNSUPPORTEDdetails, andprojection.projected_end_state. The experimental status page lists one production adopter of delivery projections, and it would need to sendunder_delivery.Checks
Run locally on
origin/maina2a7d20fff. All of these pass:build:schemasandbuild-compliancetest:schemastest:additive-minortest:storyboard-*lint, andtest:doc-compliance-driftcheck-image-quality,npm run precommit: unit tests, server unit tests, typecheck)On the training agent's
salestenant, served as the 3.3 candidate against the rebuilt schemas,creative_live_updatesandcreative_live_update_refusalpass 25 of 25 steps.execution_readinessis skipped, because the training agent doesn't declaremedia_buy.execution_readiness.